package com.sybil.ot.dominio;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name = "SIL_PROVEEDORES")
public class Proveedor implements Serializable {

   private static final long serialVersionUID = 1L;
   private String numero;
   private String tipo;
   private String razonSocial;
   private String rfc;
   private String interno;
   private short pagarDias;
   private String comentarios;
   private String estatus;
//   @OneToMany(cascade = CascadeType.ALL, mappedBy = "peotProvNumero", fetch = FetchType.LAZY)
//   private List<Pedido> pedidoList;
//   @JoinColumn(name = "PROV_MONE_CLAVE", referencedColumnName = "MONE_CLAVE")
//   @ManyToOne(optional = false, fetch = FetchType.LAZY)
//   private Moneda provMoneClave;
//   @OneToMany(mappedBy = "faotProvNumero", fetch = FetchType.LAZY)
//   private List<Factura> facturaList;
//   @OneToMany(cascade = CascadeType.ALL, mappedBy = "mttoProvNumero", fetch = FetchType.LAZY)
//   private List<Mantenimiento> mantenimientoList;
//   @OneToMany(mappedBy = "eqpoProvNumero", fetch = FetchType.LAZY)
//   private List<Equipo> equipoList;

   public Proveedor() {
   }

   public Proveedor(String numero) {
      this.numero = numero;
   }

   public Proveedor(String numero, String razonSocial, String tipo, String interno) {
      this.numero = numero;
      this.razonSocial = razonSocial;
      this.tipo = tipo;
      this.interno = interno;
   }

   @Transient
   public String getValorMuestra() {
      String muestra = "";
      if (razonSocial != null && !"".equals(razonSocial)) {
         if (this.razonSocial.length() > 25) {
            muestra += razonSocial.substring(0, 25);
         } else {
            muestra += razonSocial;
         }
      }
      muestra += " (" + numero + ")";
      return muestra;
   }

   @Id
   @Basic(optional = false)
   @Column(name = "PROV_NUMERO")
   public String getNumero() {
      return numero;
   }

   @Transient
   public String getRfc() {
      return rfc;
   }

   public void setRfc(String rfc) {
      this.rfc = rfc;
   }

   public void setNumero(String numero) {
      this.numero = numero;
   }

   @Column(name = "PROV_NOMBRE_CORTO")
   public String getRazonSocial() {
      return razonSocial;
   }

   public void setRazonSocial(String razonSocial) {
      this.razonSocial = razonSocial;
   }

   @Basic(optional = false)
   @Column(name = "PROV_TIPO")
   public String getTipo() {
      return tipo;
   }

   public void setTipo(String tipo) {
      this.tipo = tipo;
   }

   @Basic(optional = false)
   @Column(name = "PROV_ES_INTERNO")
   public String getInterno() {
      return interno;
   }

   public void setInterno(String interno) {
      this.interno = interno;
   }

   @Basic(optional = false)
   @Column(name = "PROV_PAGAR_DIAS")
   public short getPagarDias() {
      return pagarDias;
   }

   public void setPagarDias(short pagarDias) {
      this.pagarDias = pagarDias;
   }

   @Column(name = "PROV_COMENTARIOS")
   public String getComentarios() {
      return comentarios;
   }

   public void setComentarios(String comentarios) {
      this.comentarios = comentarios;
   }

   @Basic(optional = false)
   @Column(name = "PROV_ESTATUS")
   public String getEstatus() {
      return estatus;
   }

   public void setEstatus(String estatus) {
      this.estatus = estatus;
   }

   @Override
   public int hashCode() {
      int hash = 0;
      hash += (numero != null ? numero.hashCode() : 0);
      return hash;
   }

   @Override
   public boolean equals(Object object) {
      if (!(object instanceof Proveedor)) {
         return false;
      }
      Proveedor other = (Proveedor) object;
      if ((this.numero == null && other.numero != null) || (this.numero != null && !this.numero.equals(other.numero))) {
         return false;
      }
      return true;
   }

   @Override
   public String toString() {
      return "Proveedor[ numero=" + numero + " ]";
   }
}
